package com.nicolas.pattern.strategy;

/**
 * Context（环境类）：环境类是使用算法的角色，它在解决某个问题（即实现某个方法）时可以采用多种策略。
 * 在环境类中维持一个对抽象策略类的引用实例，用于定义所采用的策略。
 * @author nicolas  2017年2月13日 -- 下午9:14:41
 */
public class MovieTicket {
	private double price;  
    private Discount discount; //维持一个对抽象折扣类的引用  
  
    public void setPrice(double price) {  
        this.price = price;  
    }  
  
    //注入一个折扣类对象  
    public void setDiscount(Discount discount) {  
        this.discount = discount;  
    }  
  
    public double getPrice() {  
        //调用折扣类的折扣价计算方法  
        return discount.calculate(this.price);  
    }  
}
